package br.com.sms.dominio;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Transient;

import br.com.sms.util.DataUtil;

@Entity
public class Mensagem implements Serializable {
	
	private int id;
	private String descricaoMenssagem;
	private Date dataCriacao;
	private String tituloMensagem;
	private Usuario usuario;
	private String dataFormatada;
	private List<MalaDireta> malasDireta;
	
	

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name="CO_MSG")
	public int getId() {
		return id;
	}
	
	public void setId(int id) {
		this.id = id;
	}
	
	@OneToMany(fetch = FetchType.LAZY, mappedBy="mensagem")
	public List<MalaDireta> getMalasDireta() {
		return malasDireta;
	}

	public void setMalasDireta(List<MalaDireta> malasDireta) {
		this.malasDireta = malasDireta;
	}
	
	@Column(name = "DS_MSG")
	@Lob
	public String getDescricaoMenssagem() {
		return descricaoMenssagem;
	}
	
	public void setDescricaoMenssagem(String descricaoMenssagem) {
		this.descricaoMenssagem = descricaoMenssagem;
	}
	
	@Column(name="DT_CRIACAO")
	public Date getDataCriacao() {
		return dataCriacao;
	}
	
	public void setDataCriacao(Date dataCriacao) {
		this.dataCriacao = dataCriacao;
	}
	
	@ManyToOne
	@JoinColumn(name="CO_USUARIO")
	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	@Column(name="TITULO_MENSAGEM", length=600)
	public String getTituloMensagem() {
		return tituloMensagem;
	}

	public void setTituloMensagem(String tituloMensagem) {
		this.tituloMensagem = tituloMensagem;
	}
	
	@Transient
	public String getDataFormatada() {
		this.dataFormatada = DataUtil.getDataFormatadaComHoras(this.dataCriacao);
		return dataFormatada;
	}

	
	
	
}
